// 前后端通信数据结构定义

export interface Result<T = any> {
  code: number; // 状态码
  message: string; // 提示信息
  data?: T; // 响应数据
}

export interface TotalFlihts {
  total: number;
  pvgDep: number;
  pvgArr: number;
}

export interface MonthFlights {
  month: string;
  total: number;
  pvgDep: number;
  pvgArr: number;
}

// HTTP 状态码定义
export enum StatusCode {
  // 1xx - 信息性响应
  CONTINUE = 100, // 继续请求
  SWITCHING_PROTOCOLS = 101, // 协议切换
  PROCESSING = 102, // 正在处理
  // 2xx - 成功
  OK = 200, // 请求成功
  CREATED = 201, // 创建成功
  ACCEPTED = 202, // 接受请求但未处理完成
  NON_AUTHORITATIVE_INFORMATION = 203, // 非授权信息
  NO_CONTENT = 204, // 无内容
  RESET_CONTENT = 205, // 重置内容
  PARTIAL_CONTENT = 206, // 部分内容
  MULTI_STATUS = 207, // 多状态
  // 3xx - 重定向
  MULTIPLE_CHOICES = 300, // 多种选择
  MOVED_PERMANENTLY = 301, // 永久移动
  FOUND = 302, // 临时移动
  SEE_OTHER = 303, // 查看其他位置
  NOT_MODIFIED = 304, // 未修改
  TEMPORARY_REDIRECT = 307, // 临时重定向
  PERMANENT_REDIRECT = 308, // 永久重定向
  // 4xx - 客户端错误
  BAD_REQUEST = 400, // 请求错误
  UNAUTHORIZED = 401, // 未授权
  PAYMENT_REQUIRED = 402, // 需要支付
  FORBIDDEN = 403, // 禁止访问
  NOT_FOUND = 404, // 资源未找到
  METHOD_NOT_ALLOWED = 405, // 方法不允许
  NOT_ACCEPTABLE = 406, // 不可接受
  PROXY_AUTHENTICATION_REQUIRED = 407, // 需要代理认证
  REQUEST_TIMEOUT = 408, // 请求超时
  CONFLICT = 409, // 资源冲突
  GONE = 410, // 资源已删除
  LENGTH_REQUIRED = 411, // 需要长度
  PRECONDITION_FAILED = 412, // 先决条件失败
  PAYLOAD_TOO_LARGE = 413, // 请求体过大
  URI_TOO_LONG = 414, // URI 过长
  UNSUPPORTED_MEDIA_TYPE = 415, // 不支持的媒体类型
  RANGE_NOT_SATISFIABLE = 416, // 请求范围不满足
  EXPECTATION_FAILED = 417, // 预期失败
  I_AM_A_TEAPOT = 418, // I'm a teapot（彩蛋）
  // 5xx - 服务器错误
  INTERNAL_SERVER_ERROR = 500, // 服务器内部错误
  NOT_IMPLEMENTED = 501, // 功能未实现
  BAD_GATEWAY = 502, // 网关错误
  SERVICE_UNAVAILABLE = 503, // 服务不可用
  GATEWAY_TIMEOUT = 504, // 网关超时
  HTTP_VERSION_NOT_SUPPORTED = 505, // 不支持的 HTTP 版本
  INSUFFICIENT_STORAGE = 507, // 存储不足
  NETWORK_AUTHENTICATION_REQUIRED = 511, // 需要网络身份验证
}
